Chod hore
Predchádzajúca stránka Nasledujúca stránka Začiatok kapitoly Koniec kapitoly Začiatok kurzu Koniec kurzu


2.7 Jacksonov diagram, funkčný popis


Pomocou Jacksonovho diagramu naplánujme riešenie nášho programu zhora dole. Tento spôsob používali hlavne v 70-tých a 80-tých rokoch. Jeho autorom je Angličan Michael Jackson. Uvedieme len elementárne označenia. Postupne sa budeme podrobnejšie zaoberať touto metódou a budeme ju používať na popis našich algoritmov. Jackson navrhuje aby sme štruktúru algoritmu určovali vychádzajúc zo stavby údajov našej úlohy. Uvedieme označenie a popis základných troch prvkov programu - sekvencie, selekcie a iterácie. Funkčný popis je opisným tvarom grafického zobrazenia. Slovný popis algoritmu sa zvykne nazývať pseudokódom.

Obr2_27


Sekvencia znamená to, že činnosť A sme rozdelili na jednoduchšie činnosti B a C. Teda činnosť A je činnosť B a C spolu. Samozrejme mohli sme činnosť rozdeliť aj na väčší počet jednoduchších činností.

Obr2_28


V prípade jednovetvovej selekcie činnosť A znamená vykonanie činnosti B za istej podmienky, t.j. činnosť B sa vykoná ak podmienka F je splnená, v opačnom prípade sa nevykoná žiadna činnosť. V prípade dvojvetvovej selekcie činnosť A znamená, že z činností B a C sa vykoná práve jedna v závislosti od podmienky F - ak podmienka F je splnená, potom sa vykoná činnosť B v opačnom prípade sa vykoná činnosť C. Selekciu označujeme malým krúžkom v pravom hornom rohu znaku činnosti.

V prípade viacvetvovej selekcie môžeme vedľa seba zapísať s príslušnými podmienkami aj viac činností. Ak podmienka nie je uvedená, potom je to tá činnosť, ktorá sa vykoná ak žiadna podmienka nebola splnená. Ak všade je uvedená podmienka a žiadna z nich nie je splnená, potom sa nevykoná žiadna činnosť.

Obr2_29


V prípade iterácie činnosť A znamená viacnásobné vykonanie činnosti B za sebou. To, že koľkokrát sa bude opakovať činnosť B závisí od priebežného vyhodnotenia podmienky F. Ak podmienka je splnená, potom sa činnosť B opakovane vykoná. Iteráciu označujeme hviezdičkou v pravom hornom rohu políčka tela cyklu a podmienku píšeme nad hviezdičku. Žiaľ Jacksonov diagram nerozlišuje v označení vpredu testované a vzadu testované iterácie. Tieto iterácie navrhujeme rozlišovať vyššie uvedeným spôsobom - vpredu testované hviezdičkou a podmienkou v pravom hornom rohu a vzadu testované - hviezdičkou a podmienkou v pravom dolnom rohu políčka tela cyklu. V prípade iterácie testovaného vpredu definujeme podmienku vstupu do cyklu v druhom prípade podmienku výstupu z cyklu.

Podstatou Jacksonovho diagramu je, že činnosť na nižšej úrovni je podrobnejším popisom hornej činnosti. Teda činnosti pod sebou sú tie isté, len podrobnejšie. Na vrchole dole sa rozširujúcej pyramídy je celý program. Tie činnosti, ktoré už ďalej nespresňujeme tvoria vykonávané činnosti. Činnosti medzi vrcholom a nespresňovanými činnosťami majú iba úlohu znázornenia štruktúry. Podrobnejší popis na inom mieste znázorňujeme podčiarknutím resp. pre spojenie môžeme použiť spôsob uvedený pre vývojové diagramy.

Naša úloha v Jacksonovom diagrame bude mať nasledujúci tvar:

Obr2_30
Obr2_31


Môžeme si všimnúť, že v Jacksonovom diagrame sekvencia je vodorovná na rozdiel od vývojového diagramu a štruktogramu. Tam činnosti sú uvedené zhora dole. V Jacksonovom diagrame podrobnejšie rozpisujeme činnosti smerom zhora dole. V prípade vývojového diagramu a štruktogramu sa to vykonáva zvonka do vnútra.